package org.aseclipse.core.runtime.app
{
    import mx.core.Container;
    import mx.core.IContainer;
    
    public interface IApplicationContext
    {
        function setValue(key:String, value:Object):void;
        
        function getValue(key:String):Object;
        
        /**
        * This method should be called once the application is completely initialized 
        * and running. This method will perform certain operations that are needed once 
        * an application is running. One example is bringing down a splash screen if it exists.
        */ 
        function applicationRunning():void;
        
        /**
        * Returns the application associated with this application context. This information 
        * is used to guide the runtime as to what application extension to create and execute. 
        */ 
        function getBrandingApplication():String;
        
        /**
        * Returns the name of the product associated with this application context. The name 
        * is typically used in the title bar of UI windows. 
        */ 
        function getBrandingName():String;
        
        function getParent():IContainer;
    }
}